package com.xjh.basestudy.designmode.behaviorMode.behaviorMode2_Iterator.p2_origin;

/**
 * @author XuJianHua
 * @date 2022-09-29 17:01:44
 * @description
 * * 然而，我们只实现了简单的显示功能，如果用户需要使用集合中的原始数据，该如何遍历所有记录呢？
 * * 我们提供的接口貌似过于死板，可扩展性不够。有读者可能会说，直接将数据记录records暴露出去给用户不就可以了吗？
 * * 如此简单粗暴的做法确实能达到目的，但是这会严重破坏行车记录仪的数据逻辑封装。用户对索引位置等内部状态信息一无所知，也不会进行维护，
 * * 如果用户随意对数据进行增加或删除就会导致索引位置错乱，再继续记录很可能会覆盖最新、最重要的视频信息，导致用户数据安全无法得到保证。
 */
public class Client {

    public static void main(String[] args) {
        DrivingRecorder dr = new DrivingRecorder();
        //假设要记录12条视频
        for (int i = 0; i < 12; i++) {
            dr.append("视频_" + i);
        }
              /*按原始顺序显示，【视频0】与【视频1】分别被【视频10】与【视频11】覆盖了
          0: 视频_10
          1: 视频_11
          2: 视频_2
          3: 视频_3
          4: 视频_4
          5: 视频_5
          6: 视频_6
          7: 视频_7
          8: 视频_8
          9: 视频_9
       */
        dr.display();

  /*按顺序从新到旧显示
         视频_11
         视频_10
         视频_9
         视频_8
         视频_7
         视频_6
         视频_5
         视频_4
         视频_3
         视频_2
      */
        dr.displayByOrder();

    }
}